This Application is related to United States Patent Application titled xe2x80x9cPreparing Output XML Based on Selected Programs and XML Templates,xe2x80x9d by Michele C. Lee, Attorney Docket Number OBLX-01029US0, filed on the same day as the present application, which is incorporated herein by reference.
1. Field of the Invention
The present invention is directed to technology for delivering responses to server requests.
2. Description of the Related Art
Identity Systems have become more popular with the growth of the Internet and the use of networks and other information technologies. In general, an Identity System provides for the creation, removal, editing and other management of identity information stored in various types of data stores. The identity information pertains to users, groups, organizations and things. For each entry in the data store, a set of attributes is stored. For example, the attributes stored for a user may include a name, address, employee number, telephone number, email address, user ID and password. The Identity System can also manage access privileges that govern the subject matter an entity can view, create, modify or use in the Identity System.
An Identity System responds to users"" identity information related requests from browsers or third party applications. For example, a user may request to search and view identity information from the profiles of individuals that meet a specified set of criteria. In providing a response, the Identity System gathers, organizes, and supplies identity information.
In the past, browsers only received request responses in HTML format. XML has emerged as a popular alternative format for documents exchanged between browsers and servers. The coexistence of browsers favoring HTML and browsers favoring XML creates a challenge for Identity Systemsxe2x80x94determining the appropriate format to use in preparing responses.
Some traditional Identity Systems have addressed this challenge by only providing HTML responses, since many XML enabled browsers are also compatible with HTML. This solution, however, denies users of the flexibility and advantages offered by the XML format. XML allows users to separate a response""s raw data from the response""s display formatxe2x80x94making raw unformatted data available for browsers and third-party applications.
It is desirable for an Identity System to dynamically supply users with either HTML or XML responses.
Roughly described, embodiments of the present invention enable an Identity System to dynamically determine whether to supply HTML or XML responses. Further embodiments provide for the Identity System to perform customized post-processing on data to be supplied in the response.
The Identity System in one implementation generates an Output XML file as the basis for a response to a user""s request. The Output XML contains raw identity information organized in accordance with a set of XML templates. The Identity System dynamically determines the desired type of response and prepares the response from the Output XML. In one embodiment, the Identity System identifies the desired response type from the body of the request. In another embodiment, the Identity System maintains a list of browsers and third party applications along with the type of responses they desire.
One response type provided by the Identity System is server-side processing. In server-side processing, the Identity System combines the Output XML with XSL stylesheets to generate a HTML response. The Identity System also performs client-side processing. In client-side processing, the Identity System supplies the user with the Output XMLxe2x80x94enabling a browser or third party application to have direct access to raw XML data. The Identity System provides the Output XML either alone or along with references to a set of XSL stylesheets that clients can access.
In further embodiments of the present invention, dynamic response formatting is employed in processing environments other than an Identity System. Dynamic response formatting can have broad applicability to enhance the performance of many different server based systems.
The present invention can be accomplished using hardware, software, or a combination of both hardware and software. The software used for the present invention is stored on one or more processor readable storage media including hard disk drives, CD-ROMs, DVDs, optical disks, floppy disks, tape drives, RAM, ROM or other suitable storage devices. In alternative embodiments, some or all of the software can be replaced by dedicated hardware including custom integrated circuits, gate arrays, FPGAs, PLDs, and special purpose computers.
These and other objects and advantages of the present invention will appear more clearly from the following description in which the preferred embodiment of the invention has been set forth in conjunction with the drawings.